In conventional direct current (DC) motors, commutators and brushes are used to switch motor winding current as required for motor rotation. With the advent of brushless DC motors (BLDC), some form of rotor position measurement is used to control power transistors that actually switch motor current. To enable such operation, an absolute position of the rotor is measured to identify an electrical position of the rotor.
Integrated circuits of existing BLDC motor controllers are designed to accept Hall-effect type rotor position inputs. As is well known in the art, Hall-effect type inputs (also referred to as Hall inputs or simply Hall code) provide absolute position data (i.e., each position is assigned a unique bit combination and, therefore, the correct position is known immediately after power up without the need for a calibration step). In electric motor applications, the Hall inputs provide enough information (e.g., an absolute position within ±30 electrical degrees) to commutate a three-phase brushless DC motor in an on and off state.
In high reliability applications, resolvers are often used for determining rotor position. As is well known in the art, a resolver is a type of rotary electrical transformer used for measuring degrees of rotation. Since resolver output data is not directly compatible with Hall inputs, a conversion is performed. Typically, a resolver-to-digital converter is used to obtain a digital representation of rotor position. Then, the digital representation is converted to Hall inputs (digital to Hall code mapping).
FIG. 1 illustrates a digital to Hall code mapping table 10 that shows the conversion from resolver data to Hall code. The first column 12 of the table 10 is the actual rotor position of the motor and/or resolver in electrical degrees, and the second column 14 is actual resolver output data (represented as a 12-bit decimal number) corresponding to the actual rotor electrical position, wherein one complete revolution of the resolver (360 degrees) represents 4096 counts (0-4095). The third column 16 of the table 10 is the Hall code corresponding to the resolver output data.
As can be seen in FIG. 1, the Hall code is represented by six different binary values and, thus, the mapping of table 10, in addition to the three columns 12, 14 and 16, is divided into six rows 18, 20, 22, 24, 26 and 28, wherein each row spans 60 degrees of rotor rotation.
The mapping of table 10 may be implemented, for example, via a programmable memory device so as to directly map every digital input to the corresponding Hall code output. While this method works well, it requires a programmable device and, therefore, a design verification procedure, which can add significant time and/or cost, is generally required for aircraft use.
Another method for implementing the mapping of table 10 involves the use of digital comparators. More specifically, a series of comparators may be used where, for example, SA is logic one when the resolver data is greater than or equal to 3413 and less than or equal to 1364. This comparator method can be implemented with a programmable device (e.g., a CPLD or an FPGA), or it can be implemented in hardware. Again, the programmable device is not desirable for aircraft use because of the associated verification procedure. The hardware implementation, while not requiring the verification procedure, requires a significant number of devices to implement the mapping.